JWT를 Base64 로 인코딩하는 이유

JWT를 사용할 때 항상 인코딩/디코딩 과정을 거친다.
JWT는 session과 달리 서버에서 인가정보를 유지하기 않으면서 서버의 부하를 줄여주기 위해 사용되는데, 왜 인코딩을 추가로 수행해줘서 서버가 할 일을 만든지 궁금해졌다.
그래서 왜 JWT는 Base64를 사용하는지 찾아보았다.


그 이유에 대한 공식적으로 명확한 이유는 찾지 못했지만, 찾아본 내용을 바탕으로 정리해보았다.

챗선생님과 관련글을 찾아봤다.

(stack overflow)Why Base64 is used in JWTs?

우선 JWT는 JSON 포맷을 사용해서 데이터를 표현한다. JSON은 텍스트 데이터이다.

웹에 접근할 수 있는 시스템의 종류는 매우 다양하기 때문에 모든 시스템에서 동일한 값으로 인식하는 것을 보증해야 한다.
또한 URL에서 안전하게 포함될 수 있어야한다.

그래서 base64이다.
Base64#사용하는 이유
이러한 Base64 장점 이외도 가장 유명하고 간편하기 때문에 base64를 사용한다.****

Base64url

정확히 하자면 JWT에서 사용하는 Base64는 URL에서도 사용될 수 있게 URL-safe가 적용된 Base64url이다.